﻿Public Class dbManager

    Private _dataContext As dbEpicerieDataContext

    'Construteur
    Public Sub New(ByRef dataContext As dbEpicerieDataContext)

        _dataContext = dataContext

    End Sub

    'Métodes


    'CLIENT

    'Ajouter d'un nouveau client
    Public Sub CreationUtilisateur(ByRef nouveauClient As client)

        nouveauClient.niveauAccess = 0

        _dataContext.clients.InsertOnSubmit(nouveauClient)
        _dataContext.SubmitChanges()

    End Sub

    'Va chercher un utilisateur par son noClient
    Public Function getClientById(ByVal noClient As Integer) As client

        Dim clientVoulu As client =
                (From selected In _dataContext.clients _
                Where selected.noClient = noClient _
                Select selected).Single()
        Return clientVoulu

    End Function

    'Va chercher le client selon user/pass
    Public Function getClientByCred(ByVal username As String, ByVal password As String) As client
        Dim clientVoulu As client

        Try
            clientVoulu =
                (From selected In _dataContext.clients _
                Where selected.courrielClient = username And selected.passwordClient = password _
                Select selected).Single()
        Catch ex As Exception
            clientVoulu = Nothing
        End Try
        Return clientVoulu
    End Function

    'Modification d'un utilisateur
    Public Sub ModifierUtilisateur(ByVal nouveauClient As client)




        Dim clientVoulu As client =
                (From selected In _dataContext.clients _
                Where selected.noClient = nouveauClient.noClient _
                Select selected).First()

        clientVoulu.noCiviqueClient = nouveauClient.noCiviqueClient
        clientVoulu.codePostalClient = nouveauClient.codePostalClient
        clientVoulu.passwordClient = nouveauClient.passwordClient
        clientVoulu.rueClient = nouveauClient.rueClient
        clientVoulu.telephoneClient = nouveauClient.telephoneClient
        clientVoulu.villeClient = nouveauClient.villeClient

        _dataContext.SubmitChanges()

    End Sub


    'Produit

    'OBTENIR PRODUIT PAR ID
    Public Function getProduitById(ByVal idProduit As Integer) As produit

        Dim p As produit

        Try
            p = (From prod In _dataContext.produits
        Where (prod.noProduit = idProduit)
                            Select prod).Single()
        Catch ex As Exception
            p = Nothing
        End Try

        Return p

    End Function

    'Creation d'une Commande
    Public Sub creationCommande(ByVal clientlogger As client, ByRef HTproduitDemande As Hashtable)

        Dim commandeClient As commandes_client = New commandes_client()

        commandeClient.noClient = clientlogger.noClient

        _dataContext.commandes_clients.InsertOnSubmit(commandeClient)
        _dataContext.SubmitChanges()



        'ajout de tout les produits dans la commande
        For Each de As DictionaryEntry In HTproduitDemande
            Dim produitDem As ProduitDemande = de.Value
            Dim commandeCur As commande = New commande()

            commandeCur.noCommande = commandeClient.noCommande
            commandeCur.noProduit = produitDem.Produit.noProduit
            commandeCur.quantite = produitDem.QuantiteDemandee
            _dataContext.commandes.InsertOnSubmit(commandeCur)
            _dataContext.SubmitChanges()

        Next

    End Sub

End Class
